package com.redside.dao;

import java.util.List;

import org.hibernate.exception.DataException;

import com.redside.model.list.OptionsBean;

/**
 * A Lookup interface for populating drop down lists.
 *
 * @author <a href="mailto:pchapman@easystreet.com">Peter Chapman</a>
 */
public interface OptionsBeanLookupDao {
    /**
     * Gets one OptionsBean based on id
     * @param id the id
     * @return populated expectedComplaint object
     */
    public OptionsBean findById(String sql, Long id) throws DataException;
    
    /**
     * Gets one OptionsBean based on id
     * @param id the id
     * @return populated expectedComplaint object
     */
    public OptionsBean findById(String sql, String id) throws DataException;    
    
    /**
     * 
     * @return a List of OptionsBean objects
     */
    public List<OptionsBean> findAll(String sql) throws DataException;
    
    /**
     * 
     * @return a List of OptionsBean objects
     */
    public List<OptionsBean> findAll(String sql, String defaultId, String defaultValue) throws DataException;
    
    /**
     *  @return a List of OptionsBean objects
     */
    public List<OptionsBean> findAllForTag(String sql) throws DataException;
}
